/**
 * 
 */
package me.myachievements.persistence.account;

import java.util.Date;
import java.util.HashSet;
import java.util.Set;

import me.myachievements.persistence.PersistentObject;
import me.myachievements.persistence.goal.Goal;

/**
 * @author besseym
 *
 */
public class Account extends PersistentObject {
	
	private String username;
	private String email;
	private String name;
	private Date createdOn;
	private Date updatedOn;
	
	private Set<Goal> goals;

	/**
	 * Constructor
	 */
	public Account() {
		
		username = new String();
		email = new String();
		name = new String();
		createdOn = new Date();
		updatedOn = new Date();
		
		this.goals = new HashSet<Goal>();
	}

	/**
	 * @return the username
	 */
	public String getUsername() {
		return username;
	}

	/**
	 * @param username the username to set
	 */
	public void setUsername(String username) {
		this.username = username;
	}

	/**
	 * @return the email
	 */
	public String getEmail() {
		return email;
	}

	/**
	 * @param email the email to set
	 */
	public void setEmail(String email) {
		this.email = email;
	}

	/**
	 * @return the name
	 */
	public String getName() {
		return name;
	}

	/**
	 * @param name the name to set
	 */
	public void setName(String name) {
		this.name = name;
	}

	/**
	 * @return the createdOn
	 */
	public Date getCreatedOn() {
		return createdOn;
	}

	/**
	 * @param createdOn the createdOn to set
	 */
	public void setCreatedOn(Date createdOn) {
		this.createdOn = createdOn;
	}

	/**
	 * @return the updatedOn
	 */
	public Date getUpdatedOn() {
		return updatedOn;
	}

	/**
	 * @param updatedOn the updatedOn to set
	 */
	public void setUpdatedOn(Date updatedOn) {
		this.updatedOn = updatedOn;
	}

	/**
	 * @return the goals
	 */
	public Set<Goal> getGoals() {
		return goals;
	}

	/**
	 * @param goals the goals to set
	 */
	public void setGoals(Set<Goal> goals) {
		this.goals = goals;
	}

	/*
	 * (non-Javadoc)
	 * @see java.lang.Object#toString()
	 */
	@Override
	public String toString() {
		return "Account [username=" + username + ", email=" + email + ", name="
				+ name + ", createdOn=" + createdOn + ", updatedOn="
				+ updatedOn + "]";
	}

}
